Automatic frozen food product vending machine

ABSTRACT

An automatic frozen food product vending machine includes a frozen food product dispensing station for dispensing at least one frozen food product, a container dispenser for storing multiple frozen food product containers and configured to automatically dispense one frozen food product container at a time, a first movable platform for supporting a dispensed frozen food product container, a topping dispensing station for dispensing at least one topping, a second movable platform for supporting the dispensed frozen food product container, a user input device configured to receive a user selection of a desired frozen food product, a user selection of a desired amount of frozen food product, and a user selection of a desired topping, and processing electronics configured to automate operation of the vending machine after the user selections are made.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This is a continuation-in-part of U.S. application Ser. No. 13/830,974,filed Mar. 14, 2013, which is incorporated herein by reference in itsentirety.

BACKGROUND

The present invention relates generally to the field of automaticvending machines and, in particular, to the control and automation offrozen food product vending machines.

Frozen food product dispensing machines are used to dispense softconfectionary products such as aerated ice cream, custard, frozenyogurt, sherbets, sorbets, or other similar frozen food products. Mostof these dispensing machines are designed similarly and operate in asimilar manner. A storage hopper, reservoir, or bag holds a liquid formof the desired dessert product. Air and the liquid are drawn into afreezing chamber where they are mixed and cooled to form the aeratedfrozen product that is commonly referred to as a “soft-serve” frozenfood product.

SUMMARY

One embodiment of the invention relates to an automatic frozen foodproduct vending machine including a frozen food product dispensingstation for dispensing at least one frozen food product, a containerdispenser for storing multiple frozen food product containers andconfigured to automatically dispense one frozen food product containerat a time, a first movable platform for supporting a dispensed frozenfood product container, a topping dispensing station for dispensing atleast one topping, a second movable platform for supporting thedispensed frozen food product container, a user input device configuredto receive a user selection of a desired frozen food product, a userselection of a desired amount of frozen food product, and a userselection of a desired topping, and processing electronics. Theprocessing electronics is configured to receive the user selection ofthe desired frozen food product, the user selection of the desiredamount of frozen food product, and the user selection of the desiredtopping, move the first movable platform below the container dispenser,cause the container dispenser to dispense one frozen food productcontainer onto the first movable platform, move the first movableplatform and the dispensed frozen food product container below thefrozen food product dispensing station, cause the frozen food productdispensing station to dispense into the frozen food product container apredetermined amount of the selected frozen food product as determinedby the user selection of the desired frozen food product and the userselection of the desired amount of frozen food product, transfer thedispensed frozen food product container from the first movable platformto the second movable platform, move the second movable platform and thedispensed frozen product container below the topping dispensing station,and cause the topping dispensing station to dispense into the frozenfood product container a predetermined amount of topping as determinedby the user selection of the desired topping.

Another embodiment of the invention relates to an automatic frozen foodproduct vending machine including a first freezer barrel configured toproduce a first frozen food product, a first spigot fluidly connected tothe first freezer barrel, the first spigot for dispensing the firstfrozen food product, a second freezer barrel configured to produce asecond frozen food product, a second spigot fluidly connected to thesecond freezer barrel, the second spigot for dispensing the secondfrozen food product, a third spigot fluidly connected to both the firstfreezer barrel and the second freezer barrel, the third spigot fordispensing a mixture of the first frozen food product and the secondfrozen food product, a container dispenser for storing multiple frozenfood product containers and configured to automatically dispense onefrozen food product container at a time, a first movable platform forsupporting a dispensed frozen food product container, the first movableplatform movable among a container dispense position below the containerdispenser, a first fill position below the first spigot, a second fillposition below the second spigot, a third fill position below the thirdspigot, and a first transfer position, a first topping dispenser fordispensing a first topping, a second topping dispenser for dispensing asecond topping, a second movable platform for supporting the dispensedfrozen food product container, the second movable platform movable amonga second transfer position, a first topping position below the firsttopping dispenser, and a second topping position below the secondtopping dispenser, a user input device configured to receive a userselection of a desired frozen food product and a user selection of adesired topping, and processing electronics. The processing electronicsis configured to receive the user selection of the desired frozen foodproduct and the user selection of the desired topping, determine aselected fill position from the first fill position, the second fillposition, and the third fill position in response to the user selectionof the desired frozen food product, determine a selected toppingposition from the first topping position and the second topping positionin response to the user selection of the desired topping, move the firstmovable platform to the container dispense position, cause the containerdispenser to dispenses one frozen food product container when the firstmovable platform is in the container dispense position, move the firstmovable platform moves to the selected fill position, cause the spigotassociated with the selected fill position to dispenses a predeterminedamount of the frozen food product into the dispensed frozen food productcontainer when the first movable platform is in the selected fillposition, move the second movable platform to the second transferposition and move the first movable platform to the first transferposition, thereby transferring the dispensed frozen food productcontainer from the first movable platform to the second movableplatform, move the second movable platform to the selected toppingposition, and cause the topping dispenser associated with the selectedtopping position to dispense a predetermined amount of the topping intothe dispensed frozen food product container when the second movableplatform is in the selected topping position.

Another embodiment of the invention relates to a method of operating anautomatic frozen food product vending machine including receiving with auser input device a user selection of a desired product, receiving witha payment device a payment for the desired product, determining withprocessing electronics a container as called for by the desired product,a frozen food product as called for by the desired product, and atopping as called for by the desired product, dispensing the containerfrom a container dispenser, dispensing the frozen food product from afrozen food product dispensing station into the container, dispensingthe topping from a topping dispensing station a topping into thecontainer, and presenting the desired product resulting from thecontainer, the frozen food product, and the topping to a user.

Alternative exemplary embodiments relate to other features andcombinations of features as may be generally recited in the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will become more fully understood from the followingdetailed description, taken in conjunction with the accompanyingdrawings, in which:

FIG. 1 is a front view of an automatic frozen food product vendingmachine according to an exemplary embodiment.

FIG. 2 is a front view of the vending machine of FIG. 1 with a frontdoor open and a movable platform in a first position.

FIG. 3 is a front view of the vending machine of FIG. 1 with the frontdoor open and the movable platform in a second position.

FIG. 4 is a front view of the vending machine of FIG. 1 with a faceplate removed.

FIG. 5A is perspective view of the movable platform of the vendingmachine of FIG. 1.

FIG. 5B is a perspective view of an alternative movable platform for usewith the vending machine of FIG. 1.

FIG. 5C is a side view of the movable platform of FIG. 5B.

FIG. 5D is a front view of the movable platform of FIG. 5B.

FIG. 5E is a top view of the movable platform of FIG. 5B.

FIG. 6 is block diagram of a processing circuit configured to controlthe vending machine of FIG. 1.

FIG. 7 is a flow chart of a method of operating an automatic frozen foodproduct vending machine according to an exemplary embodiment.

FIG. 8 is a perspective view of an automatic ice cream cone dispenseraccording an exemplary embodiment.

FIG. 9 is a front view of a chamber and an actuator of the dispenser ofFIG. 8, with the actuator in a first position.

FIG. 10 is a front view of the chamber and the actuator of the dispenserof FIG. 8, with the actuator in a second position.

FIG. 11 is a front view of the chamber and the actuator of the dispenserof FIG. 8, with the actuator in a third position.

FIG. 12 is a front view of the chamber and the actuator of the dispenserof FIG. 8, with the actuator in the first position.

FIG. 13 is a perspective view of an automatic frozen food productvending machine according to an exemplary embodiment.

FIG. 14 is a perspective view of the vending machine of FIG. 13 withaccess doors open.

FIG. 15 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 16 is a perspective view of a container dispenser of the vendingmachine of FIG. 13.

FIG. 17 is an exploded view of the container dispenser of FIG. 16.

FIG. 18 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 19 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 20 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 21 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 22 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 23 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 24 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 25 is a perspective view of a topping dispensing station of thevending machine of FIG. 13.

FIG. 26 is a perspective view of a topping dispenser of the toppingdispensing station of FIG. 25.

FIG. 27 is an exploded view of the topping dispenser of FIG. 26.

FIG. 28 is a front view of a mix-in blender.

FIG. 29 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 30 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 31 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 32 is a perspective view of a portion of the vending machine ofFIG. 13.

FIG. 33 is a block diagram of processing electronics configured tocontrol the vending machine of FIG. 13.

FIG. 34 is a flow chart of a method of operating an automatic frozenfood product vending machine according to an exemplary embodiment.

DETAILED DESCRIPTION

Before turning to the figures, which illustrate the exemplaryembodiments in detail, it should be understood that the application isnot limited to the details or methodology set forth in the descriptionor illustrated in the figures. It should also be understood that theterminology is for the purpose of description only and should not beregarded as limiting.

Referring to FIGS. 1-3, an automatic frozen food product vending machine100 includes two freezer barrels 105 and 110. In some embodiments, eachfreezer barrel includes a horizontally elongated cylinder enclosing acylindrical freezing chamber wherein an inner wall is cooled byrefrigeration ducts. The freezing chamber contains an auger type blenderor other mixing device for agitating and aerating a mixture within thefreezing chamber. A dispensing nozzle or spigot 115 and 120 is fluidlyconnected to each of the freezer barrels 105 and 110, respectively, fordispensing frozen food product from the respective freezer barrel. Athird spigot 125 is fluidly connected to both freezer barrels 105 and110 to dispense a mixture of the frozen food products from the twofreezer barrels 105 and 110 (e.g., “twist” soft-serve including bothvanilla and chocolate soft serve). The freezer barrels 105 and 115 andother components of the vending machine 100 related to the productionand dispensing of the frozen food product are conventional (e.g., thosedisclosed in U.S. Pat. No. 5,706,720, which is incorporated herein byreference in its entirety).

Vending machine 100 also includes a housing 130 and a front door 135that moves between a closed position (shown in FIG. 1) and an openposition (shown in FIGS. 2-3). In some embodiments, a container holderor dispenser 140 stores containers (e.g., cones, cups, dishes, bowls,etc.) of one or more sizes (e.g., small, medium, large, etc.). A userinput device 145 (e.g., a touch screen, a keypad, multiple pushbuttonsor switches, etc.) allows a user to make various inputs or selectionsrelated to the frozen food product to be prepared by the vending machine100. A payment acceptor 150 (e.g., paper money, coins, magnetized creditor debit cards, tokens, tickets, coupons, etc.) receives the user's formof payment for the frozen food product to be prepared by the vendingmachine 100. In some embodiments, the payment acceptor 150 acceptspayment in the form of a vending machine specific tender (e.g., tokens,tickets, coupons, magnetized card). For example, the payment acceptor150 may accept tickets dispensed as a prize from a game of chance (e.g.,skee ball, a basketball shooting game, or other carnival or fun-housegames). As another example, tokens may be purchased by the user andredeemed for frozen food product by use of the vending machine 100.

The user is able to make a payment via the payment acceptor 150 andselect a frozen food product to be prepared (e.g., both size andflavor). The user opens an access door 155 and places a container on amovable container platform 160. The user then closes the access door 155and the movable platform 160 automatically moves the container beneaththe spigot 115, 120, or 125 that provides the selected flavor. Theselected flavor is then automatically dispensed in the appropriateamount (i.e., the selected size) into the container. In someembodiments, the spigots 115, 120, and 125 are opened and closed bylinear actuators to dispense the appropriate amount of frozen foodproduct. In some embodiments, the movable platform 160 moves downwardduring dispensing of the frozen food product. This movement may be toprovide adequate spacing between the spigot and container for the amountof frozen food product being dispensed or to form “balls” of frozen foodproduct in the container. The movable platform 160 then moves back inline with the access door 155 so the user can open the access door 155to retrieve the container holding the frozen food product. The movableplatform 160 is prevented from moving when the access door 155 is open.In some embodiments, lights, sounds, or other attractive features orentertainment devices are activated while the movable platform 160 is inmotion.

As shown in FIG. 4, the movable platform 160 is connected to a gantry165 that is movable in a first direction (e.g., an x-direction) and asecond direction substantially perpendicular to the first direction(e.g., a y-direction). Possible methods of motion for the gantry 165include linear actuators, belt drives, solenoids, air cylinders, rackand pinion gears, cable drawn motion, stepper motors, and the like. Inthe illustrated embodiment, the gantry 165 includes ahorizontally-arranged linear actuator 170 that moves the movableplatform 160 in the x-direction and a vertically-arranged linearactuator 175 that moves the movable platform 160 in the y-direction. Aface plate 180 (shown in FIGS. 1-3) typically covers the gantry 165 fromview during normal operation of the vending machine 100.

As shown in FIG. 5A, the movable platform 160 includes a support surface185 for supporting a container and a container proximity or presencesensor 190 for detecting when a container 192 is present on the supportsurface 185 (as shown in FIG. 2). In some embodiments, the supportsurface 185 is surrounded by a shoulder or lip 195 that helps to keep acontainer on the support surface. In some embodiments, one or more clipsor retainers 200 secure a container to the movable platform 160. Asshown in the FIGS. 5B-5E, in some embodiments, the clips 200 aremechanically adjustable to change the spacing between the clips 200 inorder to accommodate different size containers. In some embodiments, thecontainer presence sensor 190 may be a photoelectric sensor (a photoeye), an infrared sensor, an inductive sensor, a laser sensor, a limitswitch, or other sensor suitable for detecting the presence of acontainer on the support surface 185.

Proximity or presence sensors 205, 210, 215 are positioned below each ofthe spigots 115, 120, and 125, respectively. The presence sensors 205,210, 215 detect when a container on the movable platform 160 has reacheda fill position below the corresponding spigot 115, 120, and 125,respectively. In some embodiments, the presence sensors 205, 210, 215may be a photo eye, an infrared sensor, an inductive sensor, a lasersensor, a limit switch, or other sensor suitable for detecting thepresence of a container (e.g., the presence of the top of thecontainer). Movable platform 160 moves along a horizontal track 220 andthree vertical tracks 225, 230, and 235 formed in the face plate 180.Each of the vertical tracks 225, 230, and 235 leads to the fill positionbeneath one of the spigots 115, 120, and 125, respectively.

Movable platform 160 can move between a home position (as shown in FIGS.1 and 2) in which the movable platform 160 is inline with the accessdoor 155 and the three fill positions. As shown in FIG. 3, the movableplatform 160 is at the fill position below the spigot 120. As themovable platform 160 moves towards the appropriate spigot 115, 120, or125 (in view of the user-selected flavor), the container 192 on themovable platform 160 is detected by the presence sensor 205, 210, or 215below that spigot. This detection indicates that the movable platform160 has arrived at the fill position. In some embodiments, the presencesensors 205, 210, and 215 detect the top of the container 192. After themovable platform 160 has reached the fill position, the appropriatespigot 115, 120, or 125 (i.e., the spigot above the fill position atwhich the movable container is located) dispenses frozen food product237 into the container 192.

The amount of frozen food product dispensed into the container 192 maybe determined in various ways, including by user input (e.g., acontainer size input made with the user input device 145), by theelapsed time for the movable platform 160 to move from the home positionto the fill position, by weight (e.g., as detected by a weight sensor orscale), or by the number of accumulated steps of a stepper motor orstepper motors used to move the gantry 165 from the home position to thefill position.

Different size containers will result in different elapsed times fromthe time the movable platform 160 begins to move from the home positionto the time the movable platform 160 stops movement at a fill position(i.e., when one of the presence sensors 205, 210, or 215 detects thecontainer 192). The elapsed time for the movable platform 160 to movefrom the home position to the fill position with a relatively tallcontainer (e.g., a large dish) will be less than the time to do so witha relatively short container (e.g. a small dish). The elapsed timerequired for the movable platform 160 to move from the home position toeach of the fill positions for each of the sizes of containers offeredfor use with a specific vending machine 100 can be determined and theseknown elapsed times can then be used to determine the size of thecontainer at the fill position based on an actual elapsed time.Similarly, the accumulated number of steps for a stepper motor orstepper motors the gantry 165 to move the movable platform 160 from thehome position to the fill position may be used to determine the size ofthe container at the fill position based on a comparison to the knownaccumulated number of steps for the various fill positions and sizes ofcontainer offered for use with a specific vending machine. In someembodiments, the accumulated steps include the steps for an x-directionstepper motor and the steps for a y-direction stepper motor. In otherembodiments, the accumulated steps include the steps for a singledirection (e.g., the steps for a y-direction stepper motor).

This elapsed time and accumulated steps methods of container sizeindication can be used on their own to determine container size or canbe used to verify that the user-selected container size (e.g., thecontainer size input made via the user interface device 145) correspondsto the detected container size (e.g., as determined by the elapsed timeor accumulated steps). This verification can prevent overfilling acontainer with too much frozen food product if the user has selected alarger size than the container that is on the movable platform 160. Inthe event of a mismatch, the container may be filled with theappropriate amount of frozen food product for the container sizedetermined by the elapsed time or accumulated steps method or themovable platform 160 may return to the home position to receive acontainer of the user-selected size.

Vending machine 100 also includes a controller or processing circuit240. The processing circuit 240 controls the operation of the vendingmachine 100 as described herein. The processing circuit 240 includes aprocessor 245 and memory 250.

Referring to FIG. 6, a block diagram of the processing circuit orprocessing electronics 240 is shown, according to an exemplaryembodiment. The processor 245 may be or include one or moremicroprocessors (e.g., CPUs, GPUs, etc.), an application specificintegrated circuit (ASIC), a circuit containing one or more processingcomponents, a group of distributed processing components (e.g.,processing components in communication via a data network or bus),circuitry for supporting a microprocessor, or other hardware configuredfor processing data. The processor 245 is also configured to executecomputer code stored in memory 250 to complete and facilitate theactivities described herein. Memory 250 can be any volatile ornon-volatile computer-readable storage medium, or combinations ofstorage media, capable of storing data or computer code relating to theactivities described herein. For example, memory 250 is shown to includecomputer code modules such as a frozen food product selection module255, a container size selection module 260, a fill positiondetermination module 265, a timer module 270, a container sizeverification module 275, a movement prevention module 280, and anaccumulated steps module 282. When executed by the processor 245, theprocessing circuit 240 is configured to complete the activitiesdescribed herein.

The processing circuit 240 also includes a hardware interface 285 forsupporting the execution of the computer code frozen food productselection module 255, a container size selection module 260, a fillposition determination module 265, a timer module 270, a container sizeverification module 275, a movement prevention module 280, and anaccumulated steps module 282. An interface 285 may include hardwareconfigured to receive data as input to the processing circuit 240 (e.g.from the user input device 145, the payment acceptor 150, and/or thepresence sensors 190, 205, 210, and 215) and/or communicate data asoutput to another computing device (e.g., to a display). For example,the processing circuit 240 may receive container data 290 from one ormore sensors (e.g., the presence sensors 190, 205, 210, and 215). Theinterface 285 may include circuitry to communicate data via any numberof types of networks or other data communication channels. For example,the interface 285 may include circuitry to receive and transmit data viaa wireless network or via a wired network connection. In anotherexample, the interface 285 may include circuitry configured to receiveor transmit data via a communications bus with other electronic devices.

Memory 250 may include container data 290. In general, container data290 may include any data relating to the characteristics of thecontainers to be used with the vending machine 100. In some embodiments,container data 290 may include sensor data generated by one or more ofthe presence sensors 190, 205, 210, and 215 associated with the vendingmachine 100. Sensor data may include, but is not limited to, dataregarding the presence of a container at one or more of the presencesensors 190, 205, 210, and 215. Container data 290 may also includeuser-provided data. User-provided data may include, but is not limitedto, data regarding the container size selected by the user (e.g., viathe user input device 145), payment for the desired frozen food product(e.g., via the payment acceptor 150), the frozen food product selectedby the user, which spigot provides the selected frozen food product andthe location of this spigot relative to the home position of the movableplatform, known elapsed times for the movable platform 160 to move fromthe home position to a fill position while supporting a known type andsize of container, and data regarding the components of the vendingmachine 100 to be controlled by the processing circuit 240.

Memory 250 may include product selection module 255. Product selectionmodule 255 may be configured to identify the frozen food productselected by a user via the user input device 145. Such a selection canbe made based on the flavor of the desired frozen product dispensed bythe spigots 115, 120, and 125 (e.g., vanilla, chocolate, and twist) orbased on the location of the spigot 115, 120, or 125 (e.g., left, right,and center) that dispenses the desired flavor of frozen food product.Product selection module 255 may be further configured to determine ifsufficient funds have been deposited to pay for the selected frozen foodproduct. In some embodiments, the vending machine specific tender (e.g.,tokens, tickets, coupons, magnetized card) accepted by the paymentacceptor 150 may be associated with a specific frozen product flavor orlocation.

Memory 250 may include container size selection module 260. Containersize selection module 260 may be configured to identify the size and/ortype of container selected by a user via the user input device 145. Sucha selection may indicate a size of container (e.g., small, medium,large) to be filled with the selected frozen food product. Such aselection may also indicate a type of container (e.g., dish, cone, bowl,etc.) to be filled with the selected frozen food product. Container sizeselection module 260 may be further configured to determine the amountof frozen food product to be dispensed based on the selected containersize and type (i.e., frozen food product portion size). The amount maybe controlled by a dispense time (e.g., elapsed time that theappropriate spigot 115, 120, or 125 is open), by weight (e.g., as sensedby a weight sensor), by flow rate (e.g., as sensed by a flow sensor), orother appropriate method. Container size selection module 260 may befurther configured to determine if sufficient funds have been depositedto pay for the selected container size and/or type. In some embodiments,the vending machine specific tender (e.g., tokens, tickets, coupons,magnetized card) accepted by the payment acceptor 150 may be associatedwith a specific container size and/or type. Container size selectionmodule 260 may also make an adjustment to the frozen food productportion size based on the elapsed time between dispensing cycles. Frozenfood product may expand (e.g., increase in volume and/or weight) thelonger it sits in a freezer barrel 105 or 110 of the vending machine100. Accordingly, the frozen food product portion size may be adjustedto decrease the portion size based on the time elapsed betweendispensing cycles (e.g., the longer the time between dispensing cycles,the greater the decrease in the portion size).

Memory 250 may include fill position determination module 265. Fillposition determination module 265 may be configured to determine towhich of the three fill positions (i.e., one under each spigot 115, 120,and 120) the movable platform 160 will move from the home position. Thisdetermination may be made in response to inputs from the productselection module 255 and the container size selection module 260. Fillposition determination module 265 may be further configured to track orotherwise determine the position of the movable platform 160 (e.g.,based on position of linear actuators 170 and 175, based on inputs frompresence sensors 205, 210, and 215, based on step count of stepper motoror motors used to move the gantry 165, etc.).

Memory 250 may include timer module 270. Timer module 270 is configuredto track the elapsed time for the movable platform 160 to move from thehome position to one of the fill positions.

Memory 250 may include container size verification module 275. Containersize verification module 275 may be configured to compare known elapsedtimes for the movable platform 160 to move from the home position to afill position while supporting a known type and size of container to theactual elapsed time tracked by the timer module 270. This comparison canbe used to verify that the type and size of the container on the movableplatform 160 matches the selected type and size of container (e.g., asidentified by the container size selection module 260). If the selectedcontainer size and type is not verified, the frozen food product is notdispensed and the movable platform 160 returns to the home position toreceive the correct size and type of container, or the correct amount offrozen food product based on the elapsed time is dispensed, rather thanthe amount called for based on the user selection. Alternatively,container size verification module 275 may be configured to function asthe container size selection module 260 so that the container size isidentified based on the comparison of the actual and known elapsed timesfor the movable platform 160 to move from the home position to a fillposition while supporting a known type and size of container.

Memory 250 may include movement prevention module 280. Movementprevention module 280 may be configured to prevent movement of themovable platform 160 and the gantry 165 when the front door 135 or theaccess door 155 is open. Movement prevention module 280 may be furtherconfigured to prevent movement of the movable platform 160 and thegantry 165 when the vending machine 100 is in other configurations(e.g., the face plate 180 is not properly attached, a rear door is open,etc.). Alternatively or additionally, movement prevention module 280 maybe a hard-wired interlock, rather than a computer code module,configured to prevent movement of the movable platform 160 and gantry165 when the front door 135 or the access door 155 is open.

Memory 250 may include accumulated steps module 282. Accumulated stepsmodule 282 is configured to count the accumulated steps for the gantry165 to move the movable platform 160 from the home position to one ofthe fill positions. One or more stepper motors (e.g., one for movementin the x-direction and one for movement in the y-direction) may be usedto move the gantry 165. Accumulated steps module 282 may itself countthe number of accumulated steps or may receive an input from the steppermotor indicating the number of accumulated steps.

FIG. 7 illustrates a method of operating an automatic frozen foodproduct vending machine (e.g., the vending machine 100), according to anexemplary embodiment. The method 300 includes receiving a location inputfrom a user input device (e.g., the user input device 145) (step 305).The location corresponds to one of three spigots (e.g., the spigots 115,120, and 125) and/or the corresponding flavor dispensed by the selectedspigot (e.g., vanilla, chocolate, or twist). In some embodiments, acontainer size input is received from the user input device (e.g., theuser input device 145) (step 310). The user then opens an access door(e.g., the access door 155), places a container of the selected sizeonto a movable platform (e.g., the movable platform 160), and closes theaccess door. The presence of the container on the movable platform isdetected (e.g., by presence sensor 190) (step 315). The movable platformthen moves to the appropriate fill position for the location input (step320). The elapsed time or accumulated steps of one or more steppermotors for this movement is determined (step 325). The size of thecontainer on the movable platform is determined based on a comparison ofknown elapsed times or accumulated steps for the movable platform tomove from the home position to the fill position while supporting aknown type and size of container to the actual elapsed time oraccumulated steps (step 330). In some embodiments, a comparison of thecontainer size input and the container size determined by the elapsedtime or accumulated steps is made (step 335). In some embodiments, ifthis comparison indicates a mismatch, the moving platform may return tothe home position to receive the correct size container (step 340). Inother embodiments, if the comparison verifies the correct container sizeor if the comparison identifies a mismatch, the container is filled withthe amount of frozen food product corresponding to the determinedcontainer size (step 345). After the container is filled with frozenfood product, the movable platform returns to the home position (step340), where the user can open the access door to receive the containerfilled with the selected frozen food product. In some embodiments, themovable platform is prevented from moving when the access door is open.In some embodiments, lights, sounds, or other attractive features orentertainment devices are activated while the movable platform 160 is inmotion and/or while the frozen food product is being dispensed.

FIGS. 8-12 illustrate an ice cream cone dispenser according to anexemplary embodiment. The dispenser 400 includes a housing 405 thatdefines a chamber 410. A chute 415 is attached to the housing 405 abovethe chamber 410. The chute 415 holds a stack of multiple ice cream cones420 that are stacked one inside the next in a conventional manner. Eachcone 420 includes a lip 422 that is vertically spaced apart from the lipof the adjacent stacked cone by a known distance. In some embodiments,multiple chutes are movably coupled to the housing. Each of the chutesholds a stack of multiple cones of different sizes and can be movedrelative to the housing so that the cones in the chute above the chamberare the cones that will be dispensed by the dispenser 400.

Two pairs of rods are disposed within the chamber 410. The first pair ofrods 425 and 430 is located vertically below the second pair of rods 435and 440. A guide plate 445 receives an end of each of the rods 425 and430 in a first horizontal guide path 450. In some embodiments, each ofrods 425 and 430 is received in its own horizontal guide path and thetwo horizontal guide paths are collinear. The guide plate 445 alsoreceives an end of each of the rods 435 and 440 in a second horizontalguide path 455. In some embodiments, each of rods 435 and 440 isreceived in its own horizontal guide path and the two horizontal guidepaths are collinear. The horizontal guide paths 450 and 455 restrict themovement of the rods 425 and 430, and 435 and 440, respectively.

A movable actuator 460 is coupled to the housing 405 opposite the guideplate 445. One or more protrusions 465 from the housing 405 are receivedin a vertical guide path 470 in the actuator 460 to limit the actuator460 to vertical movement relative to the housing 405. The actuator 460also includes two rod guide paths 475 and 480. The rod guide path 475receives the second end of rods 425 and 435. The rod guide path 480receives the second end of rods 430 and 440. Each of the rod guide paths475 and 480 include a first angled portion 485, a straight portion 490,and a second angled portion 495. Vertical movement of the actuator 460causes the rod guide paths 475 and 480 to move relative to the rods 425,430, 435, and 440. The guide paths 475 and 480 move the pairs of rodsbetween two positions: a wide position where the rods 425 and 430 or 435and 440 are horizontally spaced apart a distance wider than the outerdiameter of the lips 422 of the cones 420 and a narrow position wherethe rods 425 and 430 or 435 and 440 are spaced apart a distance narrowerthan the outer diameter of the lips 422 of the cones 420 to support acone 420 (e.g., so that the lip 422 of a cone 420 rests on top of therods). In some embodiments, each of the rod guide paths 475 and 480 isformed in its own block of material capable of supporting the rods andallowing for easy movement of the rods (e.g., a nylon or plastic block).

In the illustrated embodiment, the actuator 460 includes a lip 500 thatcan be grasped by a user to move the actuator 460 vertically. In someembodiments, the actuator 460 is moved automatically (e.g., by a linearactuator, a piston, a motor-driven gear rack, or other appropriatedevice). By moving the actuator 460 up and down, the pairs of rodssupport and then release successive cones 420 in the stack. In someembodiments, a spring biases the actuator 460 towards a position (e.g.,towards a lowered position). In some embodiments a damper or dash pot isused to dampen the movement of the actuator 460.

FIGS. 9-12 illustrate the chamber 410 with the actuator 460 removed forclarity (on the left of the figure) and the actuator 460 (on the rightof the figure). FIGS. 9-12 show the position of the rods 425, 430, 435,and 440 and the actuator 460 during a single cycle of the dispenser 400.The stack of cones 420 are represented by three cones 420A, 420B, and420C.

As shown in FIG. 9, the rods 425 and 430 are positioned in the narrowposition by the straight portions 490 of the guide paths 475 and 480 sothat the cone 420A is supported by the rods 425 and 430. The rods 435and 440 are positioned in the wide position by the first angled portions485 of the guide paths 475 and 480 and are not in contact with any ofthe cones 420.

As shown in FIG. 10, as the actuator 460 is moved upwards, the rods 425and 430 are maintained in the narrow position by the straight portions490 of the guide paths 475 and 480 to continue to support the cone 420Aand the rods 435 and 440 are moved to the narrow position by thestraight portions 490 of the guide paths 475 and 480 so that the cone420B is supported by the rods 435 and 440.

As shown in FIG. 11, as the actuator 460 continues to move upwards, therods 425 and 430 are moved to the wide position by the second angledportions 495 of the guide paths 475 and 480 to release the cone 420A,allowing it to exit the chamber 410. In some embodiments, the cone 420Ais dispensed to a user's hand or a support surface. In some embodiments,the cone 420 is dispensed to a movable platform of an automatic frozenfood product vending machine (e.g., vending machine 100). The rods 435and 440 are maintained in the narrow position by the straight portions490 of the guide paths 475 and 480 to continue to support cone 420B, sothat only a single cone (cone 420A) is dispensed. In some embodiments,the vending machine 100 includes the dispenser 400. The movable foodplatform 160 moves to a container receiving position below the chamber415 to receive a user-selected container and then cycles as describedabove to dispense the selected frozen food product. In some embodiments,the container receiving position and the home position share the samelocation.

As shown in FIG. 12, the actuator 460 completes its cycle by movingdownwards to its original position. The rods 435 and 440 are moved tothe wide position by the first angled portions 485 of the guide paths475 and 480 to release the cone 420B. The rods 425 and 430 are moved tothe narrow position by the straight portions 490 of the guide paths 475and 480 to support the cone 420B.

Alternatively, dispenser 400 may be configured to dispense containersother than ice cream cones (e.g., dishes, bowls, cups, or other foodproduct containers) that are capable of being stacked and including lipssimilar to those described above for the cones 420.

Referring to FIGS. 13-33 an automated or automatic frozen food productvending machine 600 is illustrated according to an exemplary embodiment.Vending machine 600 is similar to vending machine 100 described above,with particular details of vending machine 600 described below.Referring to FIGS. 13-14, vending machine 600 includes a containerdispenser 605, a first movable platform 610, a frozen food productdispensing station 615, a second movable platform 620, a toppingdispensing station 625, a user access station 630, and processingelectronics 632 configured or programmed to control operation of vendingmachine 600.

Referring to FIGS. 15-18, container dispenser 605 is configured to storeand dispense frozen food product containers a single container at atime. Containers include cups, dishes, cones, bowls, and othercontainers suitable for containing a frozen food product. In someembodiments, container dispenser 605 provides a single type of containerin a size. In other embodiments, container dispenser 605 providescontainers of different types and or sizes.

Container dispenser 605 includes a dispense mechanism 631 configured todispense a single container at a time. Dispense mechanism 631 includes adispense opening 635 through which containers are dispensed. In someembodiments, a system of cams support and release a single container ata time through the dispense opening 635 with the system of cams drivenby a motor 640 or other appropriate actuator. Container dispenser 605includes a rotating carousel 645. Carousel 645 supports multiplecontainer sleeves 650. As illustrated, container dispenser 605 includesfive container sleeves 650. In some embodiments, more or fewer containersleeves 650 are included. In some embodiments, only a single containersleeve is provided and carousel 645 is omitted. Each container sleeve650 supports a stack of containers. Each container sleeve 650 includesan opening 651 that can be aligned with a container presence sensor 653(e.g., a photoelectric sensor, laser sensor, etc.) configured to detectwhen a container is present at opening 651. Carousel 645 rotates so thatone of the container sleeves 650 is aligned with the dispense opening635 of dispense mechanism 631. A sleeve presence sensor 655 is used todetect when one of the container sleeves 650 is aligned with thedispense opening 650. As illustrated, presence sensor 655 is a limitswitch that is contacted by a post 660 associated with each of thecontainer sleeves 650. As carousel 645 rotates, post 660 contacts thelimit switch 655 indicating that the container sleeve 650 associatedwith the post 660 is aligned with dispense opening 635. Processingelectronics 632 described in more detail below, may be configured totrack the quantity of containers remaining in each container sleeve 650and cause carousel 645 to rotate when the active container sleeve 650(i.e., the container sleeve 650 aligned with dispense opening 635) isempty (i.e., has no more containers) to move an inactive containersleeve 650 (i.e., one of the container sleeves 650 not aligned withdispense opening 635) that is stocked with containers (i.e., containsone or more containers) into the active position. In some embodiments,each container sleeve 650 is stocked with containers of the same sizeand type. In some embodiments, each container sleeve 650 is stocked withcontainers of different sizes and/or types. Processing electronics 632may be configured to track size, type, and quantity of containers storedin each container sleeve 650 and rotate the appropriate container sleeve650 into the active position to dispense the desired size and/or type ofcontainer. Processing electronics 632 may be configured to receive aninput from container presence sensor 653 to determine if a container ispresent to be dispensed from container sleeve 605 or if container sleeve650 is empty. Processing electronics 632 may be configured to operatedispense mechanism 631 (e.g., by activating motor 640 for theappropriate period of time or number of steps) to dispense a singlecontainer from the container sleeve 650 in the active position.

Referring to FIGS. 15 and 19-23, first movable platform 610 isconfigured to receive and support a dispensed container from containerdispenser 605, move the dispensed container as necessary to receive theselected type and amount of frozen food product from frozen food productdispensing station 615, and move the dispensed container containing thedispensed frozen food product to transfer the dispensed containercontaining the dispensed frozen food product to second movable platform620 for further handling. In some embodiments, only one movable platformis provided and the single movable platform is configured to receive andsupport a dispensed container from container dispenser 605, move thedispensed container as necessary to receive the selected type and amountof frozen food product from frozen food product dispensing station 615,move the dispensed container containing the dispensed frozen foodproduct as necessary to receive the selected type and amount of one ormore toppings from topping dispensing station 625, and move thedispensed container containing the dispensed frozen food product andtoppings to a position to be transferred to user access station 630 ormove transfer the dispensed container containing the dispensed frozenfood product and toppings to a position for access and removal by auser.

In some embodiments, first movable platform 610 is similar to movableplatform 160 as described above. First movable platform 610 is connectedto a gantry 665 similar to gantry 165 described above. First movableplatform 610 includes a base 670 and a support platform 675 attached tobase 670. Support platform 675 includes an arm 680 and a grip portion685. Arm 680 is L-shaped and includes a lower support 690 for supportingthe bottom of a dispensed container 695. Grip portion 685 includes afixed portion 700, which is shown as a substantially C-shaped wall, anda movable arm 705. Fixed portion 700 and movable arm 705 contact thesides of dispensed container 695 to position and secure dispensedcontainer 695 on support platform 675. Movable arm 705 is movablebetween an open position in which a container may be removed fromsupport platform 675 and a closed position in which container is securedto the support platform 675. A spring 710 biases movable arm 705 to theclosed position. Arm 705 may be moved to the open position by causingfirst movable platform 610 to move in such a way that the arm 705 iscontacted by a post or finger and movement of first movable platform 610relative to the post causes arm 705 to move. Such a post may be receivedwithin a curve 715 formed in movable arm 705. First movable platform 610may also include a weight sensor 720. Weight sensor 720 may be used todetect the presence of dispensed container 695 on support platform 675,the amount of frozen food product dispensed into dispensed container695, and the amount of topping dispensed into dispensed container 695.In some embodiments, weight sensor 720 includes a strain gauge coupledto arm 680. As arm 680 moves relative to base 670, the strain gaugedeforms, which is used to provide an input indicative of the weight ofdispensed container, frozen food product, or toppings to processingelectronics 632.

Referring to FIG. 19, frozen food product dispensing station 615 isconfigured to dispense at least one frozen food product. Different typesof frozen food products include distinct food products (e.g., ice cream,custard, frozen yogurt, sherbets, sorbets, or other similar frozen foodproducts) and/or distinct flavors of a frozen food product (e.g.,vanilla, chocolate, strawberry, etc.).

In some embodiments, frozen food product dispensing station 615 issimilar to the freezer barrel assembly described above with reference toFIGS. 1-3. Frozen food product dispensing station includes three spigots725, 730, and 735 for dispensing frozen food product. In someembodiments, more or fewer (as few as a single spigot) are provided fordispensing frozen food product. For example, frozen food productdispensing machine may include three freezer barrels and six spigots forproviding six different types of frozen food product (e.g., vanilla,chocolate, strawberry, vanilla-chocolate swirl, vanilla-strawberryswirl, and chocolate-strawberry swirl). Processing electronics 632 maycontrol a valve, spigot, or other appropriate actuator to cause frozenfood product dispensing station 615 to dispense the desired frozen foodproduct. The amount of frozen food product dispensed can be detectedbased on the amount of time the product is being dispensed (e.g., timeduring which the valve is open), detected by a flow sensor, detectedbased on the weight of the dispensed food product (e.g., by weightsensor 720), or various combinations thereof.

Referring to FIGS. 20-24, second movable platform 620 is configured toreceive the dispensed container containing the dispensed frozen foodproduct from first movable platform 610, move the dispensed containercontaining the dispensed frozen food product as necessary to receive theselected type and amount of one or more toppings from topping dispensingstation 625, and move the dispensed container containing the dispensedfrozen food product and toppings to a position to be transferred to useraccess station 630.

In some embodiments, second movable platform 620 is similar to firstmovable platform 610 described above. A second gantry 740 is used tomove second movable platform 620. Second movable platform 620 includes abase 745, an arm 750 and a support platform 755. Support platform 755includes a floor 760 for supporting the bottom of dispensed container695 and a grip portion 765. Grip portion 765 defines a wall that extendsupward from floor 760 and is curved in order to position and securedispensed container 695. The wall includes an opening or cut-out 770sized to receive arm 680 of first movable platform 610 and a secondopening or cut-out 775 sized to receive a pusher arm 780 fortransferring dispensed container 695 from second movable platform 620(described in more detail below). Second movable platform 620 may alsoinclude a presence sensor 785 to detect the presence of dispensedcontainer 695 on second movable platform 620. In some embodiments,presence sensor 785 is a photoelectric sensor (a photo eye), an infraredsensor, an inductive sensor, a laser sensor, a limit switch, a weightsensor (e.g., similar to weight sensor 720), or other sensor suitablefor detecting the presence of a container. The wall of grip portion 765may include an opening or cut-out 787 to provide a line-of-sight betweenpresence sensor 785 and a container supported by support platform 755.

Referring to FIGS. 25-27, topping dispensing station 625 is configuredto automatically dispense at least one topping. Toppings may be solid orliquid and may require refrigeration or not. For example, toppings caninclude various types of candy, sprinkles, fruit, syrups and othertoppings appropriate for serving with a frozen food product.

Topping dispensing station 625 includes one or more topping dispenserssuitable for dispensing solid toppings. As illustrated, toppingdispensing station 625 includes four solid topping dispensers 790, 795,800, 805. With reference to topping dispenser 790 as shown in FIGS.26-27, each topping dispenser includes a container 810 for storing asolid topping, a dispense opening 815 through which the topping isdispensed, and an auger 820 for moving the topping from container 810through dispense opening 815. A guide chute 823 directs the dispensedtopping to the dispense position below the topping dispenser. A motor825 drives auger 820 to dispense the topping. In some embodiments, motor825 is a stepper motor. Each topping dispenser also includes a base 830and an arm 835 extending from base 830. Arm 835 supports container 810.Each topping dispenser may also include a weight sensor 840. Weightsensor 840 may be used to monitor the amount of topping dispensed fromcontainer 810. In some embodiments, weight sensor 840 includes a straingauge. As the topping is dispensed, the change in weight of the toppingin container 810 causes arm 835 to move relative to base 830 and deformsthe strain gauge. The deformation of the strain gauge provides an inputwhich can be used by processing electronics 632 to determine the weight(amount) of topping dispensed from the topping dispenser. Processingelectronics 632 may be configured to activate the motor to cause thetopping dispenser to dispense topping. Processing electronics 632 may beconfigured to track the amount (weight) of topping stored in eachcontainer 810 to determine if a particular topping is available.

In some embodiments, topping dispensing station 625 is configured todispense one or more liquid toppings (e.g., chocolate sauce, hot fudge,caramel, butterscotch, etc.) in place of or in addition to solidtoppings. Topping dispensers for liquid toppings are known in the artand typically include a vertically movable pump lever that is depressedto dispense the liquid topping. A linear actuator, stepper motor orother appropriate automatic actuator may be used to depress the pumplever or actuate a pump to automate the operation of a liquid toppingdispenser. Processing electronics may be configured to determine theamount of liquid topping dispenses based on an input from a flow sensor,an input from a weight sensor (e.g., similar to weight sensor 840), theduration of time the pump is activated, the number of steps of a steppermotor used to activate a pump, etc. In embodiments including one or moretoppings that need to be refrigerated, a refrigeration enclosure and arelated refrigeration system are included in order to maintain thetoppings at the appropriate refrigerated temperature.

Referring to FIG. 28, in some embodiments, topping dispensing station625 also includes a mix-in blender 841 to blend the dispensed toppingsinto the dispensed frozen food product. Mix-in blender 841 includes aspindle 842 and blades 843. Spindle 842 and blades 843 rotate to mix orstir a food product. In some embodiments, second movable platform 620moves dispensed container 695 into a mixing position in which blades 843are inserted into the dispensed frozen food product and toppings. Mix-inblender 841 is then activated by processing electronics 632 to mix thetoppings into the frozen food product. Mix-in blender 841 is thendeactivated and second movable platform 620 moves into a disengagedposition in which second movable platform 620 and dispensed container695 are clear to move without contacting mix-in blender. Alternatively,mix-in blender 841 includes a spindle 842 configured to move down and upbetween an inserted position and a removed position so that blades 843are moved into and out of the dispensed food product and toppings ratherthan moving second movable platform 620. A linear actuator, motor (e.g.,a stepper motor) is activated by processing electronics 632 to movespindle 842 as needed.

Referring to FIGS. 29-32, user access station 630 is configured toprovide a user with access to a dispensed container that has been filledwith the selected frozen food product and toppings.

User access station 630 includes a user access platform 845, a pusherarm 850, a utensil dispenser 855, and a user access door 860. Useraccess platform 845 is rotatable and driven by a motor 865 (e.g., astepper motor) between a transfer position in which dispensed container695 may be transferred to user access platform 845 and a user accessposition in which a user may remove dispensed container 695 from useraccess platform 845 via user access door 860. Pusher arm 850 movesbetween a retracted position and an extended position to push dispensedcontainer 695 from the second movable platform 620 onto user accessplatform 845. A linear actuator, motor (e.g., a stepper motor), or otherappropriate actuator is used to move pusher arm 850. Utensil dispenser855 is configured to store and dispense utensils, for example spoon,straws, or other utensils appropriate for consuming a frozen foodproduct. Utensil dispenser 855 is configured to automatically dispense asingle utensil at a time to dispense opening 866. Utensil dispenser 855may be driven by a motor, for example a stepper motor. User accessstation 630 may also include a presence sensor 867 coupled to useraccess platform 845 to detect the presence of dispensed container 695.In some embodiments, presence sensor 867 is a weight sensor (e.g., aweight sensor including strain gauge similar to those described above).Processing electronics 632 may be configured to activate utensildispenser 855 to dispense a single utensil after dispensed container 695is detected by presence sensor 867. Processing electronics 632 may beconfigured to rotate user access platform 845 to the user accessposition after the utensil has been dispensed. After the user accessplatform 845 has finished moving, a user may reach through user accessdoor 860 to remove dispensed container 695 including the selected frozenfood product and toppings and the utensil. An additional presence sensor(e.g., photoelectric sensor, laser sensor, or other appropriate sensor)may be included to detect an unwanted object (e.g., a user's hand orarm, a stuck container, etc.) in the user access door or near the useraccess platform. Processing electronics 632 may be configured to use aninput from the additional presence sensor to stop movement of one ormore components of vending machine 600. Alternatively, additionalpresence sensor may be a hardwired interlock, rather than implemented byprogramming or computer code, to prevent movement of one or more of thecomponents of vending machine 600.

Referring to FIGS. 13-14, vending machine 600 also includes a user inputdevice 870 which allows user to select various aspects of the frozenfood product and toppings to be dispensed. User input device 870 (e.g.,a touch screen, a keypad, multiple pushbuttons or switches, etc.) allowsa user to make various inputs or selections related to the frozen foodproduct, topping, and container to be dispensed by vending machine 600and provide these inputs to processing electronics 632. A payment device875 receives the user's form of payment (e.g., paper money, coins,magnetized credit or debit cards, tokens, tickets, coupons, etc.) forthe product to be prepared by vending machine 600. User may selectfrozen food product to be dispensed (e.g., flavor or type of frozen foodproduct), one or more toppings to be included, and the amount of thedesired frozen food product. In other embodiments the size and or typeof the container may also be selected by the user. In the illustratedembodiment, user input device 870 is a touchscreen. A display (e.g., thetouchscreen) is also provided to present selection options to the user.Processing electronics 632 may be configured to present informationrelated to the types of frozen food product, toppings, and containersavailable to the user. Processing electronics 632 may be configured toprovide information to user indicating if a type of frozen food product,topping, or container is sold out or not available for purchase.

Vending machine 600 also includes a housing 880 having a base 885 andtwo access doors 890 and 895. The two access doors 890 and 895 aremovable relative to base 885 to provide access to the various internalcomponents of vending machine 600. The various panels that make uphousing 880, including base 885 and access doors 890 and 895, do notinclude any externally visible fasteners. All fasteners can be securedinternally through the open access doors and any necessary accesspanels. Not including any externally visible fasteners helps to makevending machine 600 difficult to tamper with or breach, for example inan attempt to steal money from payment device 875.

In some embodiments, user input device 870 and payment device 870 arelocated remotely from housing 880. For example, in a restaurant or foodservice station, user input device and payment device could be a cashregister operated by an employee. The cash register could communicatewith an automated vending machine to make the desired product. Thiscould reduce the number of active employees needed by possiblyeliminating an employee previously needed to make the desired product.This could also reduce waste by eliminating human error in the amount offrozen food product and toppings dispensed for a given product becausethe amounts dispensed are monitored by the automated vending machine.

Vending machine 600 also includes a controller or processing electronics632. Processing electronics 632 control the operation of the vendingmachine 600 as described herein. Processing electronics 632 includes aprocessor 900 and memory 905. In some embodiments, processingelectronics 632 may include features of processing electronics 240described above.

Referring to FIG. 33, a block diagram of the processing electronics orcircuit is shown, according to an exemplary embodiment. Processor 900may be or include one or more microprocessors (e.g., CPUs, GPUs, etc.),an application specific integrated circuit (ASIC), a circuit containingone or more processing components, a group of distributed processingcomponents (e.g., processing components in communication via a datanetwork or bus), circuitry for supporting a microprocessor, or otherhardware configured for processing data. Processor 900 is alsoconfigured to execute computer code stored in memory to complete andfacilitate the activities described herein. Memory 905 can be anyvolatile or non-volatile computer-readable storage medium, orcombinations of storage media, capable of storing data or computer coderelating to the activities described herein. For example, memory 905 isshown to include computer code modules such as a frozen food productselection module 910, a frozen food product size selection module 915, atopping selection module 920, a fill position determination module 925,a product amount determination module 930, a topping positiondetermination module 935, a topping amount determination module 940, afirst movable platform position module 945, a second movable platformposition module 947, a user access station module 950, a movementprevention module 955, a container selection module 960, a communicationmodule 961, and a reporting module 962. In some embodiments, more orfewer modules are included. Memory 905 may also include various types ofdata 965 including desired product data, position, presence, andquantity data, etc. to be used in determinations made by processingelectronics 632. When executed by processor 900, processing electronics632 is configured to complete the activities described herein.

Processing electronics 632 also includes a hardware interface 970configured to receive data (e.g., electrical signals) as input(s) toprocessing electronics 632 and provide data (e.g., electrical signals)as output(s) from processing electronics 632. Hardware interface 970 maybe configured to receive data as input(s) to processing electronics 632(e.g. from user input device 870, payment device 875, various sensors,motors, and actuators described above and/or communicate data asoutput(s) to another computing device or other components of the vendingmachine (e.g., user interface device, display, motors, linear actuators,etc. to implement the operation of the vending machine as describedherein). Hardware interface 970 may include circuitry to communicatedata via any number of types of networks or other data communicationchannels. For example, hardware interface 970 may include circuitry toreceive and transmit data via a wireless network or via a wiredconnection. In another example, hardware interface 970 may includecircuitry configured to receive or transmit data via a communicationsbus with other electronic devices. Hardware interface 970 may include anantenna, data port, or other appropriate connection for connectingprocessing electronics 632 to other components of vending machine orexternal devices.

Memory 905 may include frozen food product selection module 910. Productselection module 910 may be configured to identify the frozen foodproduct selected by a user via user input device 870. Such a selectioncan be made based on the flavor of the desired frozen product dispensedby the spigots (e.g., vanilla, chocolate, and twist) or based on thelocation of the spigot (e.g., left, right, and center) that dispensesthe desired flavor of frozen food product. Product selection module 910may be further configured to determine if sufficient funds have beendeposited via payment device 875 to pay for the selected frozen foodproduct.

Memory 905 may include frozen food product size selection module 915.Product size selection module 915 may be configured to identify theamount (e.g., volume) of selected frozen food product to be dispensed asselected by a user via user input device 870. Such a selection may bebased on a relative size (e.g., small, medium, large, extra-large,etc.), based on a volumetric measurement, based on a weight, etc.Product size selection module 915 may be further configured to determineif sufficient funds have been deposited via payment device 875 to payfor the selected amount frozen food product.

Memory 905 may include topping selection module 920. Topping selectionmodule 920 may be configured to identify one or more toppings selectedby a user via user input device 870. Such a selection can be made basedon the type or flavor of the desired toppings dispensed by the toppingdispenser (e.g., sprinkles, chocolate chips, various types of candypieces, various types of nuts, various types of liquid sauces, varioustypes of fruit toppings, etc.) or based on the location of the toppingdispenser (e.g., first, second, third, fourth, etc. from left-to-right)that dispenses the desired topping. Topping selection module 920 mayalso be configured to identify an amount of the selected topping to bedispensed. Such an identification may be based on a relative size (e.g.,small, medium, large, extra-large, etc.), based on a volumetricmeasurement, based on a weight, etc. Topping selection module 920 may befurther configured to determine if sufficient funds have been depositedvia payment device 875 to pay for the selected topping(s).

Memory 905 may include fill position determination module 925. Fillposition determination module 925 may be configured to determine towhich of the fill positions (i.e., one under each spigot 725, 730, and735) first movable platform 610 will move to in order to receive theselected frozen food product. This determination may be made in responseto inputs from the product selection module 910 and product sizeselection module 915.

Memory 905 may include product amount determination module 930. Productamount determination module 930 may be configured to determine how muchof the selected frozen product will be dispensed and/or how much of theselected frozen food product has been dispensed. The amount to bedispensed may be determined in response to inputs from the product sizeselection module 915. The amount that has been dispensed may bedetermined by the amount of time the dispensing spigot or valve has beenopened, an input indicative of the change in weight detected by theweight sensor of first movable platform 610, a combination of the two,or other appropriate method (e.g., an input from a flow sensor).

Memory 905 may include topping position determination module 935.Topping position determination module 935 may be configured to determinewhich of the topping dispenser positions (i.e., one under each toppingdispenser 790, 795, 800, 805), second movable platform 620 will move toreceive the selected topping(s). This determination may be made inresponse to inputs from the topping selection module 920.

Memory 905 may include topping amount determination module 940. Toppingamount determination module 940 may be configured to determine how muchof the selected topping will be dispensed and/or how much of theselected topping has been dispensed. The amount to be dispensed may bedetermined in response to inputs from the topping selection module 920.The amount to be dispensed may vary based on the selected amount offrozen food product and/or the size of the selected container. Theamount that has been dispensed may be determined by the amount of timethe selected topping dispenser is operated (e.g., the amount of time themotor is driving the dispensing auger), an input indicative of thechange in weight detected by the weight sensor of the topping dispenser,an input indicative of the change in weight detected by a weight sensorof the second movable platform, or combinations thereof.

Memory 905 may include first movable platform position module 945. Firstmovable platform position module 945 is configured to determine andtrack the position of first movable platform 610 across the range ofmotion of first movable platform 610 (e.g., based on position of linearactuators, based on step count of stepper motor or motors used to movefirst movable platform 610, based on operating time of linear actuators,based on operating time of stepper motors or motors, etc.). Firstmovable platform position module 945 may identify various intendedpositions of first movable platform 610 (e.g., container dispenseposition, selected frozen food product dispense position, transferposition with second movable platform 620, etc.) relative to a homeposition or relative to one another. For example, first movable platformposition module 945 may include data indicating the number of stepsneeded by the first stepper motor and the second stepper motor of thefirst gantry 665 and/or the amount of operating time need by the firststepper motor and the second stepper motor of the first gantry 665 tomove first movable platform 610 from the container dispense positionunder container dispenser 605 to the frozen food product dispenseposition under first spigot 725. First movable platform position module945 may also be configured to provide outputs to first movable platform610 to cause the first movable platform to move (e.g., to activatelinear actuators or stepper motors).

Memory 905 may include second movable platform position module 947.Second movable platform position module 947 is configured to determineand track the position of second movable platform 620 across the rangeof motion of second movable platform 620 (e.g., based on position oflinear actuators, based on step count of stepper motor or motors used tomove second movable platform 620, based on operating time of linearactuators, based on operating time of stepper motors or motors, etc.).Second movable platform position module 947 may identify variousintended positions of second movable platform 620 (e.g., transferposition with respect to first movable platform 610, selected toppingdispense position, transfer position with respect to user access station630, etc.) relative to a home position or relative to one another. Forexample, second movable platform position module 947 may include dataindicating the number of steps needed by the first stepper motor and thesecond stepper motor of the second gantry 740 and/or the amount ofoperating time need by the first stepper motor and the second steppermotor of the second gantry 740 to move second movable platform 620 fromthe transfer position with respect to first movable platform 610 to thetopping dispense position under the first topping dispenser 790. Secondmovable platform position module 947 may also be configured to provideoutputs to second movable platform 620 to cause second movable platform620 to move (e.g., to activate linear actuators or stepper motors).

Memory 905 may include user access station module 950. User accessstation module 950 may be configured to actuate pusher arm 850 totransfer a container from second movable platform 620 to user accessplatform 845. User access station module 950 may be configured to detectthe presence of a container on user access platform 845 via an inputfrom a weight sensor or a presence sensor (e.g., sensor 867). Useraccess station module 950 may be configured to provide an output toutensil dispenser 855 to dispense a utensil in response to detecting acontainer on the user access platform 845. User access station module950 may be configured to provide an output to rotate user accessplatform 845.

Memory 905 may include movement prevention module 955. Movementprevention module 955 may be configured to prevent movement of useraccess platform, utensil dispenser, pusher arm, second movable platform,topping dispensing station, first movable platform, dispensing station,container dispenser and other automated moving components of the vendingmachine when an unwanted object is detected in the user access door,near the user access platform, or when one of the housing doors isopened. A presence sensor (e.g., photoelectric sensor, laser sensor, orother appropriate sensor) may be used to provide an input to movementprevention module 955 of an unwanted object (e.g., a user's hand or arm,a stuck container, etc.) in the user access door or near the user accessplatform. A limit switch, magnetic switch, or other appropriate switchmay be used to provide an input to movement prevention module that oneof the housing access doors has been opened. Alternatively oradditionally, movement prevention module 955 may be a hard-wiredinterlock, rather than a computer code module, configured to preventmovement of one or more of the automated moving components of thevending machine.

Memory 905 may include container selection module 960. Containerselection module 960 may be configured to identify the frozen foodproduct container selected by a user via user input device 870. Such aselection can be made based on the type of the desired container (cone,cup, bowl, etc.) or based on the location of the desired containersleeve that dispenses the desired container. Selections may also includethe size of the desired container based on a relative size (e.g., small,medium, large, extra-large, etc.), based on a volumetric measurement,etc. Container selection module 960 may be further configured todetermine if sufficient funds have been deposited via payment device 875to pay for the selected container and size of container.

Memory 905 may also include a communication module 961. Communicationmodule 961 may be configured to provide for communication betweensystems and devices both internal and external to vending machine 600.For example, the communication module may be configured to use anantenna or data port for communication over a network. For example, thecommunication module may be used to communicate data related to vendingmachine 600 over a wireless network (e.g., Wi-Fi or cellular) or overthe internet.

Memory 905 may also include a reporting module 962. Reporting module 962may be configured to gather or compile various data related to thestatus, performance, operation, sales, etc. of vending machine andpackage that data into a report. Reporting module 962 may be configuredto provide communication module 961 with the necessary inputs totransfer a report over a wireless network or the internet to a user(e.g., the owner of vending machine, the person or company responsiblefor stocking vending machine, etc.).

Reporting module 962 may gather or compile vending machine information.Vending machine information may include a store number or uniqueidentifier used to identify a particular vending machine, locationinformation about the specific location of a particular vending machineincluding location type, location address, and location description,region information about the specific region a particular vendingmachine is located in (e.g., a particular sales region, a particularstate or other geographic region, etc.), franchisee/licensee informationabout a particular franchisee or licensee using or responsible for aparticular vending machine, and product information including number oftypes of frozen food product, toppings, and containers that can bedispensed by a particular vending machine.

Reporting module 962 may gather or compile sales information. Salesinformation may include quantity or currency value of sales by type offrozen food product, flavor of frozen food product, size of frozen foodproduct, type of topping, flavor of topping, size of topping, type ofpayment (e.g., cash, debit, credit, vouchers etc.). Sales informationmay be presented as gross or net sales. Sales information may alsoinclude quantity or currency value of discounts and refunds. Salesinformation may also include cancellation information including quantityof cancellations and location of the cancellation during the orderingprocess. Sales information may also include invoice information,including quantity of invoices and average invoices.

Reporting module 962 may gather or compile usage information. Usageinformation may include quantity (e.g., servings, volume, etc.) of typeof frozen food product dispensed, flavor of frozen food productdispensed, type of container dispensed, size of container dispensed,type of topping dispensed, flavor of topping dispensed. Usageinformation may also include quantity (e.g., servings, volume, etc.) oftype of frozen food product available, flavor of frozen food productavailable, type of container available, size of container available,type of topping available, flavor of topping available. Reporting module962 may gather or compile operation information. Operation informationmay include time a particular vending machine is in use (awake), not inuse (asleep or standby), or out of service (e.g., out of stock, notoperational due to an error or damage, etc.), number and frequency ofservice calls and dates of such service calls (e.g., to stock vendingmachine, to repair vending machine, etc.), current status of aparticular vending machine (e.g., awake, asleep, out of service, etc.),and error information including type of error, time and date erroroccurred, time and date error was resolved, etc.

Reporting module 962 may generate reports including relevant information(e.g., vending machine information, sales information, usageinformation, etc.). Reports may include reports for a single machine andreports for a group of machines (e.g., from a particular location, froma particular type of location, from a particular region, for aparticular franchisee or licensee, etc.). Reports may provide relevantinformation for a particular date range. The date range may becustomizable and specified by a user, or may be set for a particulartime period (e.g., daily, weekly, monthly, quarterly, yearly, etc.).Reports may present aggregate or to-date data or may present trendsacross particular time periods (e.g., daily, weekly, monthly, quarterly,yearly, etc.).

Reporting module 962 may also be configured to monitor the status ofvending machine 600. Monitoring may include detecting errors inoperation of vending machine, detecting out-of-stock errors in vendingmachine, etc. Reporting module 962 may detect errors in the operation ofvending 600 by comparing expected operation versus actual operation ofthe various components of vending machine 600. For example, if frozenfood product dispensing station 615 indicates that frozen food productis being dispensed, but weight sensor 720 of first movable platform 610is not detecting a change in weight indicative of frozen food productreaching dispensed container 695, this may indicate that frozen foodproduct dispensing station 615 is out of product, that first movableplatform 610 has not reached the proper dispense position, or some othererror in operation of vending machine 600. The various actuators andmotors of vending machine 600 may also experience operational errorstates. For example, a motor drawing an unexpectedly large current mayindicate a jam or other obstruction that is preventing the motor frommoving a component as intended (e.g., first gantry 665 could be bound upor otherwise jammed, preventing motors from moving gantry 665 asintended). The various sensors of vending machine 600 may also indicateout-of-stock error states. For example, an out of containers error maybe generated when container presence 653 indicates no containers presentin any of container sleeves 650. Reporting module 962 may be configuredto track operation time of each freezer barrel of frozen food productdispensing station 615 to determine when a freezer barrel is out ofstock or to track total weight of frozen food product dispensed fromeach freezer barrel with weight sensor 720 to determine when a freezerbarrel is out of stock. Reporting module 962 may be configured to detectwhen a topping dispenser is out of stock based on an input from theweight sensor associated a particular topping dispenser.

Reporting module 962 may be configured to provide error monitoringreports to indicate errors in real time, or batched error reports atparticular times (e.g., morning, noon, end of business day, etc.). Sucherror reports can be routed to a service provider who is tasked withfixing operation errors and/or restocking vending machine 600. In thisway, the service provider can tend to vending machine 600 on anas-needed basis.

Data 965 may include desired product data. In general, desired productdata may include end user-provided data to indicate the desired productto be produced by the vending machine (e.g., a sundae). Enduser-provided data may include, but is not limited to, data regardingthe desired frozen food product, the desired amount of frozen foodproduct, the desired topping or toppings, the desired type of containerselected by the user, and the desired container size selected by theuser (e.g., via user input device 870), payment for the desired productas selected by the user (e.g., via payment device 875). Desired productdata may also include vendor data indicating what products the vendorhas stocked in the vending machine. Vendor data may include, but is notlimited to, type(s) of frozen food product provided in the frozen foodproduct dispensing station, which spigot provides which type of frozenfood product, the type(s) of topping provided in the topping dispensingstation, which topping dispenser provides which type of topping, thetype(s) of utensil provided in the utensil dispenser, the size(s) andtype(s) of container provided in the container dispenser, and which sizeand type of container is provided in which container storage location(e.g., container support sleeve).

Data 965 may include position, presence, and quantity data. Positiondata may track and store data related to the position of the variousautomated moving components of the vending machine. Presence data maytrack and store data related to the presence of a dispensed container inthe vending machine (e.g., which platform(s) currently contain adispensed container). Quantity data may track and store date related tothe quantities of perishable goods stored in the vending machine (e.g.,number of containers, amount of frozen food product, amount of toppings,number of utensils). In some embodiments, the various components storingperishable goods are sized to provide a common number of servings beforeneeding to be refilled. For example, the maximum amount of containers,frozen food product, toppings, and utensils may enable vending machine600 to produce a predetermined number of servings (e.g., 100, 150, 200,etc.) before vending machine 600 needs to be refilled.

In operation, processing electronics 632 may be configured or programmedto operate vending machine according to various embodiments of themethods of operation described herein.

Referring to FIG. 33, a method of operating an automatic of automatedfrozen food product vending machine 1000 is described according to anexemplary embodiment. A user selects (step 1005) and pays for a desiredproduct (step 1010) (e.g., a sundae, a cone, a dish of frozen foodproduct, a shake, a frozen beverage, etc.) (e.g., via user input deviceand payment device). The user may make the selections and then beinformed of the necessary payment or can make the payment and then makethe necessary selections in view of the amount of payment made. Desiredproduct selections may include desired type and/or size of container,desired type of frozen food product, desired amount of frozen foodproduct, desired toppings, and desired amount of toppings. After theuser has made and/or confirmed the desired product selections, thevending machine automatically dispenses the selected frozen food productand toppings into the selected frozen food product container andpresents the finished product with a utensil to the user without anyfurther interaction with the user.

After the user's selection and payment have been entered, the selectedcontainer is dispensed (step 1015). In some embodiments, the firstmovable platform moves to a position below the container dispenser inwhich the arm of the first movable platform is aligned with the dispenseopening of the container dispenser. The dispense mechanism automaticallydispenses a single cup onto the arm of the first movable platform. Asthe first movable platform moves upward towards the container dispenser,a finger or post contacts the movable arm of the first movable platformmoving the arm into the open position so that the first movable platformmay receive the container to be dispensed. After the container has beendispensed onto the first movable platform, the movable platform movesdownward bringing the finger out of contact with the movable arm andallowing the arm to move to the closed position, thereby securing thedispense container onto the first movable platform.

After the selected container has been dispensed, it is filled with theselected amount of the selected frozen food product (step 1020). In someembodiments, the movable platform moves to a selected dispense positionto receive the frozen food product selected by the user. At thisposition the selected amount of frozen food product is dispensed. Theamount of frozen food product dispensed can be monitored by the time ofdispensing, the weight of dispensed frozen food product detected by theweight sensor of the first movable platform, a flow of dispensed frozenfood product as detected by a flow sensor, or combinations thereof.

After the frozen food product has been dispensed, any selected toppingsare added to the container (step 1025). In some embodiments, the secondmovable platform moves to a transfer position and the first movableplatform, now supporting the container including the dispensed frozenfood product, moves to a related transfer position where the containeris able to be transferred from the first movable platform to the secondmovable platform. The arm of the first movable platform passes throughthe associated cut-out in the second movable platform so that thedispensed frozen food product container is aligned with the support baseof the second movable platform. The first movable platform is thenwithdrawn with the wall of the second movable platform preventing thedispensed container from moving with the first movable platform, therebytransferring the dispensed frozen food product container to the secondmovable platform. The movable arm of the first frozen food productcontainer contacts the container itself of a finger of post and is movedto the open position as the first movable platform moves away from thesecond movable platform. The second movable platform then moves to aposition beneath the topping dispensing station. The position isassociated with the selected topping or toppings to be dispensed. Ateach of the selected topping positions, the topping dispenser for theassociated position dispenses the selected amount of topping. Forexample, the motor is used to actuate the auger thereby dispensingtopping through the dispense opening of the topping dispenser with thetopping falling into the container and/or onto the dispensed frozen foodproduct. The amount of dispensed topping may be monitored by the weightsensor associated with the topping dispenser.

After receiving all of the selected toppings, the container includingthe dispensed frozen food product and toppings is presented to the userfor consumption (step 1030). In some embodiments, the second movableplatform moves to a position adjacent the user access platform. Thepusher arm moves from the retracted position to the extended position,passing through the associated cut-out of the wall of the second movableplatform, thereby moving the now-finished product to the user accessplatform. The pusher arm contacts the container to move the finishedproduct from the second movable platform to the user access platform.The weight sensor of the user access platform determines the presence ofthe finished product and confirms that it has been successfullytransferred by the pusher arm. The utensil dispenser dispenses a singleutensil. The user access platform rotates to the user access position inwhich the user may access the completed product and utensil through theuser access door. Before the user access platform is rotated to thisuser access position, the user cannot reach through the user access doorinto the interior of the vending machine.

The construction and arrangement of the apparatus, systems and methodsas shown in the various exemplary embodiments are illustrative only.Although only a few embodiments have been described in detail in thisdisclosure, many modifications are possible (e.g., variations in sizes,dimensions, structures, shapes and proportions of the various elements,values of parameters, mounting arrangements, use of materials, colors,orientations, etc.). For example, some elements shown as integrallyformed may be constructed from multiple parts or elements, the positionof elements may be reversed or otherwise varied and the nature or numberof discrete elements or positions may be altered or varied. Accordingly,all such modifications are intended to be included within the scope ofthe present disclosure. The order or sequence of any process or methodsteps may be varied or re-sequenced according to alternativeembodiments. Other substitutions, modifications, changes, and omissionsmay be made in the design, operating conditions and arrangement of theexemplary embodiments without departing from the scope of the presentdisclosure.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROMor other optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Wheninformation is transferred or provided over a network or anothercommunications connection (either hardwired, wireless, or a combinationof hardwired or wireless) to a machine, the machine properly views theconnection as a machine-readable medium. Thus, any such connection isproperly termed a machine-readable medium. Combinations of the above arealso included within the scope of machine-readable media.Machine-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing machines to perform a certain function orgroup of functions.

Although the figures may show or the description may provide a specificorder of method steps, the order of the steps may differ from what isdepicted. Also two or more steps may be performed concurrently or withpartial concurrence. Such variation will depend on various factors,including software and hardware systems chosen and on designer choice.All such variations are within the scope of the disclosure. Likewise,software implementations could be accomplished with standard programmingtechniques with rule based logic and other logic to accomplish thevarious connection steps, processing steps, comparison steps anddecision steps.

What is claimed is:
 1. An automatic frozen food product vending machine,comprising: a first freezer barrel configured to produce a first frozenfood product; a first spigot fluidly connected to the first freezerbarrel, the first spigot for dispensing the first frozen food product; asecond freezer barrel configured to produce a second frozen foodproduct; a second spigot fluidly connected to the second freezer barrel,the second spigot for dispensing the second frozen food product; a thirdspigot fluidly connected to both the first freezer barrel and the secondfreezer barrel, the third spigot for dispensing a mixture of the firstfrozen food product and the second frozen food product; a containerdispenser for storing a plurality of frozen food product containers andconfigured to automatically dispense one frozen food product containerat a time; a first movable platform for supporting a dispensed frozenfood product container, the first movable platform movable among acontainer dispense position below the container dispenser, a first fillposition below the first spigot, a second fill position below the secondspigot, a third fill position below the third spigot, and a firsttransfer position; a first topping dispenser for dispensing a firsttopping; a second topping dispenser for dispensing a second topping; asecond movable platform for supporting the dispensed frozen food productcontainer, the second movable platform movable among a second transferposition, a first topping position below the first topping dispenser,and a second topping position below the second topping dispenser; a userinput device configured to receive a user selection of a desired frozenfood product and a user selection of a desired topping; and processingelectronics configured to: receive the user selection of the desiredfrozen food product and the user selection of the desired topping;determine a selected fill position from the first fill position, thesecond fill position, and the third fill position in response to theuser selection of the desired frozen food product; determine a selectedtopping position from the first topping position and the second toppingposition in response to the user selection of the desired topping; movethe first movable platform to the container dispense position; cause thecontainer dispenser to dispenses one frozen food product container whenthe first movable platform is in the container dispense position; movethe first movable platform moves to the selected fill position; causethe spigot associated with the selected fill position to dispenses apredetermined amount of the frozen food product into the dispensedfrozen food product container when the first movable platform is in theselected fill position; move the second movable platform to the secondtransfer position and move the first movable platform to the firsttransfer position, thereby transferring the dispensed frozen foodproduct container from the first movable platform to the second movableplatform; move the second movable platform to the selected toppingposition; and cause the topping dispenser associated with the selectedtopping position to dispense a predetermined amount of the topping intothe dispensed frozen food product container when the second movableplatform is in the selected topping position.
 2. The automatic frozenfood product vending machine of claim 1, wherein the container dispensercomprises: a rotating carousel; a plurality of container support sleevessupported by the carousel, wherein each of the container support sleevesis configured to receive a plurality of frozen food product containers;a dispense mechanism including a dispense opening; wherein the carouselis rotatable to selectively align one of the plurality of containersupport sleeves with the dispense opening so that frozen food productcontainers may be dispensed from the aligned container support sleevethrough the dispense opening.
 3. The automatic frozen food productvending machine of claim 2, wherein the container dispenser furthercomprises: a sleeve presence sensor configured to detect when one of theplurality of container support sleeves is aligned with the dispenseopening.
 4. The automatic frozen food product vending machine of claim1, further comprising: a utensil dispenser for storing a plurality ofutensils and configured to automatically dispense one utensil at a time;a user access platform located adjacent the utensil dispenser; a pusherarm movable to transfer the dispensed frozen food product container fromthe second movable platform to the user access platform; wherein thesecond movable platform is further movable to a third transfer positionadjacent the user access platform; wherein the processing electronics isfurther configured to: after the selected topping is dispensed, move thesecond movable platform to the third transfer position; cause the pusherarm to transfer the dispensed frozen food container to the user accessplatform; and cause the utensil dispenser to dispense one utensil. 5.The automatic frozen food product vending machine of claim 4, furthercomprising: a user access door adjacent the user access platform;wherein the user access platform is rotatable between a fourth transferposition and a user access position; and wherein the processingelectronics is further configured to: rotate the user access platformfrom the fourth transfer position to the user access position to allow auser to remove the dispensed frozen food product container from the useraccess platform via the user access door.
 6. The automatic frozen foodproduct vending machine of claim 1, further comprising a first weightsensor coupled to the first movable platform; wherein the processingelectronics is further configured to: at the container dispenseposition, detect the presence of the dispensed frozen food productcontainer in response to an input from the first weight sensor; and atthe selected fill position, determine if the predetermined amount offrozen food product has been dispensed in response to an input from thefirst weight sensor.
 7. The automatic frozen food product vendingmachine of claim 6, wherein the first container weight sensor comprisesa strain gauge.
 8. The automatic frozen food product vending machine ofclaim 6, further comprising a presence sensor coupled to the secondmovable platform; wherein the processing electronics is furtherconfigured to: at the second transfer position, detect the presence ofthe dispensed frozen food product container in response to an input fromthe presence sensor.
 9. The automatic frozen food product vendingmachine of claim 1, wherein the user input device comprises a touchscreen.
 10. The automatic frozen food product vending machine of claim1, wherein the first topping dispenser comprises a first toppingcontainer and a first topping weight sensor; wherein the processingelectronics is further configured to: determine if the predeterminedamount of the topping has been dispensed in response to an input fromthe first topping weight sensor.